package cn.com.nes.site.service.system.company;

import cn.com.nes.common.web.CommonResult;
import cn.com.nes.mybatis.agent.system.entity.Company;
import cn.com.nes.site.entity.PageData;
import cn.com.nes.site.entity.vo.NullVO;
import cn.com.nes.site.entity.vo.system.CompanyTreeNodeVO;
import cn.com.nes.site.entity.vo.user.DeleteBusinessCompanyVo;
import cn.com.nes.site.entity.vo.user.SaveBusinessCompanyVo;
import cn.com.nes.site.entity.vo.workOrder.QueryCompanyVO;
import cn.com.nes.site.service.system.company.bo.QueryAgentCompanyBO;
import cn.com.nes.site.service.system.company.dto.CompanyTreeNodeDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

public interface BusinessCompanyService extends IService<Company> {


    PageData saveBusinessCompany(SaveBusinessCompanyVo vo) throws Exception;


    PageData deleteBusinessCompany(DeleteBusinessCompanyVo vo) throws Exception;


    /**
     * 绑定热链云公司和长效管护客服中心
     * @param companyId
     * @param callCenterCompanyId
     */
    void bindCompanyId(String companyId, String callCenterCompanyId);


    Company getCompany(String companyId) throws Exception;


    List<Company> getCompanys(Set<String> companyIds);



    List<CompanyTreeNodeDTO> getCompanyAndDepartmentTreeNode(NullVO vo) throws Exception;


    List<CompanyTreeNodeDTO> getCompanyTreeNode(CompanyTreeNodeVO vo) throws Exception;

    Company getCompanyByCallCenterCompanyId(Long callCenterCompanyId);

    boolean updateCompany(String companyId,String callCenterCompanyId);

    //查询创建客服中心的公司
    Page<Company> getCompanys(QueryCompanyVO vo);

    /**
     * 查询客服中心id集合
     */
    Set<String> getCcCompanyIdSet(String operateUserCompanyType, String companyId) throws Exception;

    /**
     * 查询厂商的代理商
     */
    CommonResult<?> queryAgentCompany(QueryAgentCompanyBO bo) throws Exception;

    List<Company> getCompanyByUniformSocialCreditCode(String uniformSocialCreditCode);
}
